package ligueBaseball;

import java.sql.*;

/**
 * Syst�me de gestion de la bd de la ligue de Baseball
 * */
public class GestionLigue {

    private Connexion cx;
    private Arbitre arbitre;
    private Arbitrer arbitrer;
    private Joueur joueur;
    private Equipe equipe;
    private Match match;
    private FaitPartie faitPartie;
    private GestionArbitre gestionArbitre;
    private GestionArbitrer gestionArbitrer;
    private GestionJoueur gestionJoueur;
    private GestionEquipe gestionEquipe;
    private GestionMatch gestionMatch;
    private GestionFaitPartie gestionFaitPartie;
    private GestionInterrogation gestionInterrogation;

    /**
     * Ouvre une connexion avec la BD relationnelle et
     * alloue les gestionnaires de transactions et de tables.
     * <pre>
     * 
     * @param serveur SQL
     * @param bd nom de la bade de donn�es
     * @param user user id pour �tablir une connexion avec le serveur SQL
     * @param password mot de passe pour le user id
     *</pre>
     */
    public GestionLigue(String serveur, String bd, String user, String password)
            throws LigueException, SQLException {
// allocation des objets pour le traitement des transactions
        cx = new Connexion(serveur, bd, user, password);
        arbitre = new Arbitre(getCx());
        joueur = new Joueur(getCx());
        equipe = new Equipe(getCx());
        match = new Match(getCx());
        faitPartie = new FaitPartie(getCx());
        gestionArbitre = new GestionArbitre(arbitre);
        gestionJoueur = new GestionJoueur(joueur);
        gestionEquipe = new GestionEquipe(equipe);
        gestionMatch = new GestionMatch(match, equipe);
        gestionFaitPartie = new GestionFaitPartie(cx, faitPartie, joueur, equipe);
        gestionInterrogation = new GestionInterrogation(cx);


    }

    public void fermer()
            throws SQLException {
// fermeture de la connexion
        getCx().fermer();
    }

    public Connexion getCx() {
        return cx;
    }

    public void setCx(Connexion cx) {
        this.cx = cx;
    }

    public Arbitre getArbitre() {
        return arbitre;
    }

    public void setArbitre(Arbitre arbitre) {
        this.arbitre = arbitre;
    }

    public Joueur getJoueur() {
        return joueur;
    }

    public void setJoueur(Joueur joueur) {
        this.joueur = joueur;
    }

    public Equipe getEquipe() {
        return equipe;
    }

    public void setEquipe(Equipe equipe) {
        this.equipe = equipe;
    }

    public Match getMatch() {
        return match;
    }

    public void setMatch(Match match) {
        this.match = match;
    }


    public FaitPartie getFaitPartie() {
        return faitPartie;
    }

    public void setFaitPartie(FaitPartie faitPartie) {
        this.faitPartie = faitPartie;
    }

    public GestionArbitre getGestionArbitre() {
        return gestionArbitre;
    }

    public void setGestionArbitre(GestionArbitre gestionArbitre) {
        this.gestionArbitre = gestionArbitre;
    }

    public GestionJoueur getGestionJoueur() {
        return gestionJoueur;
    }

    public void setGestionJoueur(GestionJoueur gestionJoueur) {
        this.gestionJoueur = gestionJoueur;
    }

    public GestionEquipe getGestionEquipe() {
        return gestionEquipe;
    }

    public void setGestionEquipe(GestionEquipe gestionEquipe) {
        this.gestionEquipe = gestionEquipe;
    }

    public GestionMatch getGestionMatch() {
        return gestionMatch;
    }

    public void setGestionMatch(GestionMatch gestionMatch) {
        this.gestionMatch = gestionMatch;
    }

    public GestionFaitPartie getGestionFaitPartie() {
        return gestionFaitPartie;
    }

    public void setGestionFaitPartie(GestionFaitPartie gestionFaitPartie) {
        this.gestionFaitPartie = gestionFaitPartie;
    }

    public GestionInterrogation getGestionInterrogation() {
        return this.gestionInterrogation;
    }

    public GestionArbitrer getGestionArbitrer() {
        return gestionArbitrer;
    }

    public void setGestionArbitrer(GestionArbitrer gestionArbitrer) {
        this.gestionArbitrer = gestionArbitrer;
    }

    public Arbitrer getArbitrer() {
        return arbitrer;
    }

    public void setArbitrer(Arbitrer arbitrer) {
        this.arbitrer = arbitrer;
    }
}
